Peripheral hardware devices connect to personal computers via various bus architectures. For example, a Universal Serial Bus (USB) connects devices such as hubs, human interface devices (HIDs), speakers, and user-input devices. In some prior art systems, the host operating system maintains the connected devices at full power while the system is running, even if such devices are not in use at the time. Further, any hubs or controllers remain needlessly at full power when there are no non-hub devices connected to them. These limitations have power consumption and heat generation implications for desktop computers, and most especially battery power conservation implications for laptop computers.
Additionally, in some prior art systems, a bus controller for the bus accesses main memory on the host system continuously when the bus controller is not in a suspended state. This prevents the host system from placing the system processor cache or the main cache for main memory and processor in an idle state (e.g., C3). Further, some prior art systems idle the bus controller of the bus only if there is nothing plugged into the root hub ports of the bus.
The invention described below addresses one or more of these and other disadvantages.